package com.qjdchina.sku.converter;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import org.springframework.beans.BeanUtils;

import com.qjdchina.sku.model.SkuProduct;
import com.qjdchina.sku.model.vo.MongoSkuProductVO;
import com.qjdchina.sku.model.vo.SkuProductVO;

public class SkuProductConverter {

	
	private SkuProductConverter(){
		
	}
	/**
	 * SkuProduct to SkuProductVO
	 * @param skuProduct
	 * @return
	 */
	public static SkuProductVO toSkuProductVO(SkuProduct skuProduct){
		
		SkuProductVO skuProductVO = new SkuProductVO();
		if (null==skuProduct) {
			return skuProductVO;
		}
		BeanUtils.copyProperties(skuProduct, skuProductVO);
		return skuProductVO;
	}
	/**
	 * SkuProductVO to SkuProduct
	 * @param skuProductVO
	 * @return
	 */
	public static SkuProduct toSkuProduct(SkuProductVO skuProductVO){
		
		SkuProduct skuProduct=new SkuProduct();
		if (null==skuProductVO) {
			return skuProduct;
		}
		BeanUtils.copyProperties(skuProductVO, skuProduct);
		return skuProduct;
	}
	/**
	 * List<SkuProduct> to List<SkuProductVO>
	 * @param skuProducts
	 * @return
	 */
	public static List<SkuProductVO> toSkuProductVOs(List<SkuProduct> skuProducts){
		
		if (null==skuProducts) {
			return Collections.emptyList();
		}
		List<SkuProductVO> skuProductVOs=new ArrayList<SkuProductVO>();
		for (SkuProduct skuProduct : skuProducts) {
			skuProductVOs.add(SkuProductConverter.toSkuProductVO(skuProduct));
		}
		return skuProductVOs;
	}
	
	
public static MongoSkuProductVO toMongoSkuProductVO(SkuProductVO skuProductVO){
		MongoSkuProductVO mongoSkuProductVO = new MongoSkuProductVO();
		mongoSkuProductVO.setProductId(skuProductVO.getProductId());
		mongoSkuProductVO.setProductName(skuProductVO.getProductName());
		mongoSkuProductVO.setAddress(skuProductVO.getAddress());
		mongoSkuProductVO.setApprovaler(skuProductVO.getApprovaler());
		mongoSkuProductVO.setAuditStatus(skuProductVO.getAuditStatus());
		mongoSkuProductVO.setAuditTime(skuProductVO.getAuditTime());
		mongoSkuProductVO.setCompanyId(skuProductVO.getCompanyId());
		mongoSkuProductVO.setCompanyName(skuProductVO.getCompanyName());
		mongoSkuProductVO.setDescription(skuProductVO.getDescription());
		mongoSkuProductVO.setDisplayPrice(skuProductVO.getDisplayPrice());
		mongoSkuProductVO.setGmtCreated(skuProductVO.getGmtCreated());
		mongoSkuProductVO.setGmtModified(skuProductVO.getGmtModified());
		mongoSkuProductVO.setIsDeleted(skuProductVO.getIsDeleted());
		mongoSkuProductVO.setPicturePath(skuProductVO.getPicturePath());
		mongoSkuProductVO.setPicturePathAbsolute(skuProductVO.getPicturePathAbsolute());
		mongoSkuProductVO.setPicturePathType(skuProductVO.getPicturePathType());
		if (skuProductVO.getPrice() != null){
			mongoSkuProductVO.setPrice(skuProductVO.getPrice().doubleValue());
		}
		mongoSkuProductVO.setProductCode(skuProductVO.getProductCode());
		mongoSkuProductVO.setSkuBrandId(skuProductVO.getSkuBrandId());
		mongoSkuProductVO.setSkuCategoryId(skuProductVO.getSkuCategoryId());
		mongoSkuProductVO.setSkuUserId(skuProductVO.getSkuUserId());
		mongoSkuProductVO.setThumbnail(skuProductVO.getThumbnail());
		mongoSkuProductVO.setThumbnailAbsolute(skuProductVO.getThumbnailAbsolute());
		mongoSkuProductVO.setBrandName(skuProductVO.getBrandName());
		mongoSkuProductVO.setDiscount(skuProductVO.getDiscount());
		mongoSkuProductVO.setModel(skuProductVO.getModel());
		mongoSkuProductVO.setIsProductCollection(skuProductVO.getIsProductCollection());
		if(skuProductVO.getStrategicPrice()!=null) {
			mongoSkuProductVO.setStrategicPrice(skuProductVO.getStrategicPrice().doubleValue());
		}
		return mongoSkuProductVO;	
	}
	

}
